/*
 * extract_face_main.cpp
 *
 *  Created on: Mar 30, 2011
 *      Author: tqlong
 */

#include <iostream>
#include <boost/program_options.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <cassert>
#include <iostream>

namespace po = boost::program_options;
po::options_description desc("Allowed options");
po::variables_map vm;

void process_options(int argc, char** argv);

int main(int argc, char** argv) {
  process_options(argc, argv);
  if (vm.count("help")) {
    std::cout << desc << "\n";
    return 0;
  }

  boost::posix_time::ptime time_start(boost::posix_time::microsec_clock::local_time());
  boost::posix_time::ptime time_end(boost::posix_time::microsec_clock::local_time());
  boost::posix_time::time_duration duration(time_end - time_start);
  std::cerr << "Duration = " << duration << "\n";
  return 0;
}

void process_options(int argc, char** argv)
{
  desc.add_options()
    ("help", "produce this usage")
//    ("to", po::value<std::string>(), "file contains training samples")
//    ("gen", "generate random data")
//    ("match", "match two datasets")
//    ("method", po::value<std::string>()->default_value("auctree"), "matching method: auction, alternate, auctree")
//    ("dat1", po::value<std::string>(), "file contains the first dataset")
//    ("dat2", po::value<std::string>(), "file contains the second dataset")
//    ("seed", "using different random seed")
//    ("n", po::value<int>()->default_value(10), "number of points")
//    ("nc", po::value<int>()->default_value(3), "number of centers")
//    ("d", po::value<int>()->default_value(2), "input dimension")
//    ("r", po::value<double>()->default_value(1.0), "cluster radius")
//    ("lambda", po::value<double>()->default_value(1.0), "regularized parameter")
//    ("iter", po::value<int>()->default_value(10), "maximum number of iterations")
//    ("eta", po::value<double>()->default_value(0.5), "learning rate")
//    ("mesh", po::value<std::string>()->default_value("mesh"), "mesh files prefix")
    ;
  po::store(po::parse_command_line(argc, argv, desc), vm);
  po::notify(vm);
}
